;s8.asm
assume cs:codesg
codesg segment

        mov ax, 4c00H
        int 21H

start:  
        mov ax, 0
    s:  nop  ; 
        nop  ;

        mov di, offset s  ; 将s 的标号处的偏移地址给di
        mov si, offset s2 ; 将s2 的标号处的偏移地址给si
        mov ax, cs:[si]   ; 将cs:si 指向的内存单元的内容赋值给了ax
        mov cs:[di], ax   ; s2标号的机器码赋值给s标号处，就是两个nop的位置

    s0: jmp short s
    
    s1: mov ax, 0
        int 21H
        mov ax, 0

    s2: jmp short s1
        nop
codesg ends
end start